package com.example.workflow.mapper;

import com.example.workflow.dto.ApprovalHistoryListDto.ApprovalHistoryItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 审批人员Mapper接口
 */
@Mapper
public interface ApprovalOrderMapper {
    
    /**
     * 统计一级审批已处理工单数量
     * URL: /api/approval/processed
     * 
     * @param userId 用户ID
     * @return 工单数量
     */
    Integer countProcessedFirstApprovalOrders(@Param("userId") Integer userId);
    
    /**
     * 统计二级审批已处理工单数量
     * URL: /api/approval/processed
     * 
     * @param userId 用户ID
     * @return 工单数量
     */
    Integer countProcessedSecondApprovalOrders(@Param("userId") Integer userId);
    
    /**
     * 统计一级审批已通过工单数量
     * URL: /api/approval/processed
     * 
     * @param userId 用户ID
     * @return 工单数量
     */
    Integer countApprovedFirstOrders(@Param("userId") Integer userId);
        
    /**
     * 统计一级审批已拒绝工单数量
     * URL: /api/approval/processed
     * 
     * @param userId 用户ID
     * @return 工单数量
     */
    Integer countRejectedFirstOrders(@Param("userId") Integer userId);
        
    /**
     * 统计二级审批已通过工单数量
     * URL: /api/approval/processed
     * 
     * @param userId 用户ID
     * @return 工单数量
     */
    Integer countApprovedSecondOrders(@Param("userId") Integer userId);
        
    /**
     * 统计二级审批已拒绝工单数量
     * URL: /api/approval/processed
     * 
     * @param userId 用户ID
     * @return 工单数量
     */
    Integer countRejectedSecondOrders(@Param("userId") Integer userId);
    
    /**
     * 查询一级审批已处理工单列表
     * URL: /approval/list
     * 
     * @param userId 用户ID
     * @return 工单列表
     */
    List<ApprovalHistoryItem> getFirstApprovalHistoryList(@Param("userId") Integer userId);
    
    /**
     * 查询二级审批已处理工单列表
     * URL: /approval/list
     * 
     * @param userId 用户ID
     * @return 工单列表
     */
    List<ApprovalHistoryItem> getSecondApprovalHistoryList(@Param("userId") Integer userId);
} 